# -*- coding: utf-8 -*-

import Dispositivo
from helper import texto
import time


class Comunicacion_Serial:
    """Clase que simula una comunicacion serial """
    def __init__(self, disp1, disp2, vel_com):
        """Inicializa la comunicacion

    Argumentos:
    disp1 -- Dispositivo que enviara datos a otro
    disp2 -- Dispositivo que recibira datos de otro
    vel_com -- Velocidad a la que se comunicaran los dispositivos

    """
        self.disp1 = disp1
        self.disp2 = disp2
        self.vel_com = vel_com

    def establecer_Comunicacion(self):
        """Establece la comunicacion entre dispositivos """
        time.sleep(self.vel_com)
        self.disp1 = Dispositivo.Controlador()
        self.disp2 = Dispositivo.Controlador()
        texto('Comunicacion establecida')

    def empezar_Comunicacion(self, dato):
        """Empieza la comunicacion entre dipositivos

    Argumentos:
    dato -- Dato que enviara dispositivo1 a dispositivo2

    """
        time.sleep(self.vel_com)

        for i in range(len(dato)):
            time.sleep(self.vel_com)
            texto('Enviando dato: ' + dato[i])
            self.disp2.bufer.insertar(dato[i])
            texto('Escrito en Bufer')

        texto('Vaciando Bufer')
        a = self.disp2.bufer.vaciar()

        self.disp2.escribir_dato(a)
        if self.disp2.comprobacion_de_datos_rec(dato) is True:
            time.sleep(self.vel_com)
            texto('Datos recibidos satisfactoriamente')
            texto(dato + ' escrito en memoria')
        else:
            texto('Error de comunicacion')

    def eliminar(self):
        """Elimina la comunicacion entre dispositivos """
        del(self.disp1)
        del(self.disp2)
        texto('Comunicacion cerrada')


com_ser = Comunicacion_Serial('jose', 'pepe', 1)
com_ser.establecer_Comunicacion()
com_ser.empezar_Comunicacion('124528')
com_ser.empezar_Comunicacion('848694')com_ser.eliminar()
